// ocr识别 消费者脚本
require('dotenv').config({ path: `./.env.${process.env.NODE_ENV.trim()}` }) // 环境变量注入
const { addAliases } = require('module-alias')
const path = require('path')
// 配置路径别名
addAliases({
    '@': path.resolve(__dirname, '../../src'),
})
const axios = require('axios')
const client = require('@/db/redis') // 用于执行其他命令的客户端
const redisSubscriber = require('@/db/redis-subscriber') // 用于订阅的客户端
const { BASE_URL, SERVICE_PORT, REDIS_DB } = process.env // 环境变量
const logger = require('@/utils/logger') // 日志记录

// 删除原有订阅逻辑，改为Stream消费组模式 stream模式 redis版本需要5.0以上
const { createConsumerGroup, consumeMessages } = require('@/utils/redisStream') // 新增工具模块

const STREAM_NAME = 'ocr_stream' // 定义Stream名称
const CONSUMER_GROUP = 'ocr_consumers' // 消费组名称

async function main() {
    // 确保消费组存在
    await createConsumerGroup(STREAM_NAME, CONSUMER_GROUP)

    // 启动消费者
    consumeMessages(STREAM_NAME, CONSUMER_GROUP, async (message) => {
        try {
            const data = JSON.parse(message)
            console.log('消费消息', message) // 处理消息
            return true // 返回true确认ACK
        } catch (error) {
            logger.error('消息处理失败', error)
            return false // 返回false拒绝ACK
        }
    })
}

main()
